home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Resources / Chat & Communication / Digsby build 37 / digsby_setup.exe / lib / ZSI / wstools / logging.pyo (.txt) < prev    next >
Python Compiled Bytecode  |  2008-10-13  |  10KB  |  252 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyo (Python 2.5)
  3.  
  4. ident = '$Id: logging.py 1395 2007-06-14 06:49:35Z boverhof $'
  5. import os
  6. import sys
  7. WARN = 1
  8. DEBUG = 2
  9.  
  10. class ILogger:
  11.     level = 0
  12.     
  13.     def __init__(self, msg):
  14.         pass
  15.  
  16.     
  17.     def warning(self, *args, **kw):
  18.         pass
  19.  
  20.     
  21.     def debug(self, *args, **kw):
  22.         pass
  23.  
  24.     
  25.     def error(self, *args, **kw):
  26.         pass
  27.  
  28.     
  29.     def setLevel(cls, level):
  30.         cls.level = level
  31.  
  32.     setLevel = classmethod(setLevel)
  33.     
  34.     debugOn = lambda self: self.level >= DEBUG
  35.     
  36.     warnOn = lambda self: self.level >= WARN
  37.  
  38.  
  39. class BasicLogger(ILogger):
  40.     last = ''
  41.     
  42.     def __init__(self, msg, out = sys.stdout):
  43.         self.msg = msg
  44.         self.out = out
  45.  
  46.     
  47.     def warning(self, msg, *args, **kw):
  48.         if self.warnOn() is False:
  49.             return None
  50.         
  51.         if BasicLogger.last != self.msg:
  52.             BasicLogger.last = self.msg
  53.             print >>self, '---- ', self.msg, ' ----'
  54.         
  55.         print >>self, '    %s  ' % self.WARN,
  56.         print >>self, msg % args
  57.  
  58.     WARN = '[WARN]'
  59.     
  60.     def debug(self, msg, *args, **kw):
  61.         if self.debugOn() is False:
  62.             return None
  63.         
  64.         if BasicLogger.last != self.msg:
  65.             BasicLogger.last = self.msg
  66.             print >>self, '---- ', self.msg, ' ----'
  67.         
  68.         print >>self, '    %s  ' % self.DEBUG,
  69.         print >>self, msg % args
  70.  
  71.     DEBUG = '[DEBUG]'
  72.     
  73.     def error(self, msg, *args, **kw):
  74.         if BasicLogger.last != self.msg:
  75.             BasicLogger.last = self.msg
  76.             print >>self, '---- ', self.msg, ' ----'
  77.         
  78.         print >>self, '    %s  ' % self.ERROR,
  79.         print >>self, msg % args
  80.  
  81.     ERROR = '[ERROR]'
  82.     
  83.     def write(self, *args):
  84.         for s in args:
  85.             self.out.write(s)
  86.         
  87.         event = ''.join(*args)
  88.  
  89.  
  90. _LoggerClass = BasicLogger
  91.  
  92. class GridLogger(ILogger):
  93.     
  94.     def debug(self, msg, *args, **kw):
  95.         kw['component'] = self.msg
  96.         gridLog(event = msg % args, level = 'DEBUG', **kw)
  97.  
  98.     
  99.     def warning(self, msg, *args, **kw):
  100.         kw['component'] = self.msg
  101.         gridLog(event = msg % args, level = 'WARNING', **kw)
  102.  
  103.     
  104.     def error(self, msg, *args, **kw):
  105.         kw['component'] = self.msg
  106.         gridLog(event = msg % args, level = 'ERROR', **kw)
  107.  
  108.  
  109. GLRegistry = { }
  110.  
  111. class GLRecord(dict):
  112.     reserved = ('ts', 'event', 'level', 'status', 'gid', 'prog')
  113.     omitname = ()
  114.     levels = dict(FATAL = 'Component cannot continue, or system is unusable.', ALERT = 'Action must be taken immediately.', CRITICAL = 'Critical conditions (on the system).', ERROR = 'Errors in the component; not errors from elsewhere.', WARNING = 'Problems that are recovered from, usually.', NOTICE = 'Normal but significant condition.', INFO = 'Informational messages that would be useful to a deployer or administrator.', DEBUG = 'Lower level information concerning program logic decisions, internal state, etc.', TRACE = 'Finest granularity, similar to "stepping through" the component or system.')
  115.     
  116.     def __init__(self, date = None, **kw):
  117.         if not date:
  118.             pass
  119.         kw['ts'] = self.GLDate()
  120.         if not kw.get('gid'):
  121.             pass
  122.         kw['gid'] = os.getpid()
  123.         dict.__init__(self, kw)
  124.  
  125.     
  126.     def __str__(self):
  127.         StringIO = StringIO
  128.         import cStringIO
  129.         s = StringIO()
  130.         n = ' '
  131.         reserved = self.reserved
  132.         omitname = self.omitname
  133.         levels = self.levels
  134.         for k in list((filter,)((lambda i: self.has_key(i)), reserved)) + list((filter,)((lambda i: i not in reserved), self.keys())):
  135.             v = self[k]
  136.             if k in omitname:
  137.                 s.write('%s ' % self.format[type(v)](v))
  138.                 continue
  139.             
  140.             if k == reserved[2] and v not in levels:
  141.                 pass
  142.             
  143.             s.write('%s=%s ' % (k, self.format[type(v)](v)))
  144.         
  145.         s.write('\n')
  146.         return s.getvalue()
  147.  
  148.     
  149.     class GLDate(str):
  150.         
  151.         def __new__(self, args = None):
  152.             import datetime as datetime
  153.             if not args:
  154.                 pass
  155.             args = datetime.datetime.utcnow()
  156.             if not args.tzinfo:
  157.                 pass
  158.             l = (args.year, args.month, args.day, args.hour, args.minute, args.second, args.microsecond, 'Z')
  159.             return str.__new__(self, '%04d-%02d-%02dT%02d:%02d:%02d.%06d%s' % l)
  160.  
  161.  
  162.     format = {
  163.         int: str,
  164.         float: (lambda x: '%lf' % x),
  165.         long: str,
  166.         str: (lambda x: x),
  167.         unicode: str,
  168.         GLDate: str }
  169.  
  170.  
  171. def gridLog(**kw):
  172.     import os
  173.     if not bool(int(os.environ.get('GRIDLOG_ON', 0))):
  174.         return None
  175.     
  176.     url = os.environ.get('GRIDLOG_DEST')
  177.     if url is None:
  178.         return None
  179.     
  180.     
  181.     try:
  182.         scheme = url[:url.find('://')]
  183.         send = GLRegistry[scheme]
  184.         send(url, str(GLRecord(**kw)))
  185.     except Exception:
  186.         ex = None
  187.         print >>sys.stderr, '*** gridLog failed -- %s' % str(kw)
  188.  
  189.  
  190.  
  191. def sendUDP(url, outputStr):
  192.     socket = socket
  193.     AF_INET = AF_INET
  194.     SOCK_DGRAM = SOCK_DGRAM
  195.     import socket
  196.     idx1 = url.find('://') + 3
  197.     idx2 = url.find('/', idx1)
  198.     if idx2 < idx1:
  199.         idx2 = len(url)
  200.     
  201.     netloc = url[idx1:idx2]
  202.     (host, port) = netloc.split(':') + [
  203.         80][0:2]
  204.     socket(AF_INET, SOCK_DGRAM).sendto(outputStr, (host, int(port)))
  205.  
  206.  
  207. def writeToFile(url, outputStr):
  208.     print >>open(url.split('://')[1], 'a+'), outputStr
  209.  
  210. GLRegistry['gridlog-udp'] = sendUDP
  211. GLRegistry['file'] = writeToFile
  212.  
  213. def setBasicLogger():
  214.     setLoggerClass(BasicLogger)
  215.     BasicLogger.setLevel(0)
  216.  
  217.  
  218. def setGridLogger():
  219.     setLoggerClass(GridLogger)
  220.  
  221.  
  222. def setBasicLoggerWARN():
  223.     setLoggerClass(BasicLogger)
  224.     BasicLogger.setLevel(WARN)
  225.  
  226.  
  227. def setBasicLoggerDEBUG():
  228.     setLoggerClass(BasicLogger)
  229.     BasicLogger.setLevel(DEBUG)
  230.  
  231.  
  232. def setLoggerClass(loggingClass):
  233.     pass
  234.  
  235.  
  236. def setLoggerClass(loggingClass):
  237.     global _LoggerClass
  238.     _LoggerClass = loggingClass
  239.  
  240.  
  241. def setLevel(level = 0):
  242.     ILogger.level = level
  243.  
  244.  
  245. def getLevel():
  246.     return ILogger.level
  247.  
  248.  
  249. def getLogger(msg):
  250.     return _LoggerClass(msg)
  251.  
  252.